﻿using BLevy.Entidad;
using BLevy.Negocio;
using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmPlanReporte : Form
    {
        public frmPlanReporte()
        {
            InitializeComponent();
        }

        private void frmPlanReporte_Load(object sender, EventArgs e)
        {
            try
            {
                IList<Plan> _planes = Planes.FindAll();

                var query = (from fila in _planes
                             select new
                             {
                                 id = fila.id,
                                 nombre = fila.nombre,
                                 descripcion = fila.descripcion,
                                 fecharegistro = fila.fecharegistro,
                                 costo_base = fila.costo_base,
                                 titular = fila.titular,
                                 edad_titular = fila.edad_titular,
                                 conyuge = fila.conyuge,
                                 edad_conyuge = fila.edad_conyuge,
                                 hijos = fila.hijos,
                                 cantidad_hijos = fila.cantidad_hijos,
                                 edad_hijos = fila.edad_hijos,
                                 otros = fila.otros,
                                 cantidad_otros = fila.cantidad_otros,
                                 edad_otros = fila.edad_otros,
                                 activo = fila.activo

                             }).ToList();

                ReportDataSource rds = new ReportDataSource();
                rds = new ReportDataSource("DataSet1", query);

                this.reportViewer1.LocalReport.ReportEmbeddedResource = "BLevy.UI.Reportes.PlanReporte.rdlc";
                this.reportViewer1.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SubReportGetAdicionales);
                this.reportViewer1.LocalReport.DataSources.Add(rds);
                this.reportViewer1.RefreshReport();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        void SubReportGetAdicionales(object sender, SubreportProcessingEventArgs e)
        {
            try
            {
                int plan_id = int.Parse(e.Parameters["PLAN_ID"].Values[0].ToString());
                ReportDataSource rds = new ReportDataSource("DataSet1", Planes.FindAdicionalesByPlan(plan_id));
                e.DataSources.Add(rds);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    }
}
